package com.heiye.blog.ai.servie;

import com.heiye.blog.ai.model.vo.*;
import com.heiye.blog.framework.common.response.Response;
import com.heiye.blog.framework.mybatis.response.PageResponse;
import reactor.core.publisher.Flux;

/**
 * @author: heiye
 * @date: 2025/11/05 下午7:34
 * @version: v1.0.0
 * @description: 智能体业务
 */
public interface RoleService {

    /**
     * 查询智能体列表
     *
     * @param findRolePageListReqVO
     * @return
     */
    PageResponse<FindRolePageListRspVO> findRolePageList(FindRolePageListReqVO findRolePageListReqVO);

    /**
     * 查询智能体详情
     *
     * @param roleId
     * @return
     */
    Response<?> findById(Long roleId);

    /**
     * 查询智能体文本模型
     *
     * @param roleId
     * @return
     */
    Response<?> findRoleTextModelById(Long roleId);

    /**
     * 流式对话
     *
     * @param aiRoleChatReqVO
     * @return
     */
    Flux<AIResponse> chat(AIRoleChatReqVO aiRoleChatReqVO);

    /**
     * 生成声音
     *
     * @param soundGenerationReqVO
     * @return
     */
    Response<?> soundGeneration(SoundGenerationReqVO soundGenerationReqVO);

    /**
     * 新建角色对话
     *
     * @param newRoleChatReqVO
     * @return
     */
    Response<?> newRoleChat(NewRoleChatReqVO newRoleChatReqVO);
}
